package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.DrawNum;

/**
 * 
 * DrawNumMapper数据库操作接口类
 * 
 **/

public interface DrawNumMapper {
	
	/**
	 * 
	 * 查询（根据主键ID查询）
	 * 
	 **/
	DrawNum selectByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 
	 * 删除（根据主键ID删除）
	 * 
	 **/
	int deleteByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 
	 * 添加
	 * 
	 **/
	int insert(DrawNum record);
	
	/**
	 * 
	 * 添加 （匹配有值的字段）
	 * 
	 **/
	int insertSelective(DrawNum record);
	
	/**
	 * 
	 * 修改 （匹配有值的字段）
	 * 
	 **/
	int updateByPrimaryKeySelective(DrawNum record);
	
	/**
	 * 
	 * 修改（根据主键ID修改）
	 * 
	 **/
	int updateByPrimaryKey(DrawNum record);
	
	List<DrawNum> findBySelective(@Param("dn") DrawNum record);
	
	List<DrawNum> findBySelectiveForUpdate(@Param("dn") DrawNum record);
	
	/**
	 * 根据会员等级更新抽奖次数
	 * @param sysId
	 * @param memberLevel
	 * @param ruleId
	 * @param num
	 * @return
	 */
	int updateDrawNumLevel(@Param("sysId") Long sysId, @Param("memberLevel") String[] memberLevel, @Param("ruleId") Long ruleId, @Param("num") Integer num,
			@Param("sysUserId") Long sysUserId);
	
	/**
	 * 根据会员等级插入抽奖次数
	 * @param sysId
	 * @param memberLevel
	 * @param ruleId
	 * @param num
	 * @return
	 */
	int insertDrawNumLevel(@Param("sysId") Long sysId, @Param("memberLevel") String[] memberLevel, @Param("ruleId") Long ruleId, @Param("num") Integer num,
			@Param("sysUserId") Long sysUserId);
	
	/**
	 * 根据会员ID更新抽奖次数
	 * @param sysId
	 * @param memberIds
	 * @param ruleId
	 * @param num
	 * @return
	 */
	int updateDrawNumByMemberId(@Param("sysId") Long sysId, @Param("memberIds") List<Long> memberIds, @Param("ruleId") Long ruleId, @Param("num") Integer num,
			@Param("sysUserId") Long sysUserId);
	
	/**
	 * 根据会员ID插入抽奖次数
	 * @param sysId
	 * @param memberIds
	 * @param ruleId
	 * @param num
	 * @return
	 */
	int insertDrawNumLevelByMemberId(@Param("sysId") Long sysId, @Param("memberIds") List<Long> memberIds, @Param("ruleId") Long ruleId, @Param("num") Integer num,
			@Param("sysUserId") Long sysUserId);
	
	int modityDrawNumLock(@Param("dn") DrawNum dn);
	
	int modityDrawNum(@Param("dn") DrawNum dn);
	
	List<DrawNum> findBySelectiveByserNum(DrawNum dn);
	
}